package com.inei.evaluacionmype.controller.activity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.inei.evaluacionmype.R;
import com.inei.evaluacionmype.controller.MarcoController;
import com.inei.evaluacionmype.model.entity.Marco;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class Marco_Activity extends Activity {

	// componentes
	private ListView lvMarco;

	// variables
	private MarcoController con;
	private List<Marco> lista;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_marco);

		setTitle("Marco");

		con = new MarcoController(getApplicationContext());

		IniciarComponentes();

		AgregarEventos();

		CargarDatos();
	}

	private void IniciarComponentes() {
		lvMarco = (ListView) findViewById(R.id.lvMarco);
		lvMarco.setDividerHeight(0);
	}

	private void AgregarEventos() {
		lvMarco.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> adap, View v, int pos,
					long arg3) {
				CrearMenu(lista.get(pos));
			}
		});
	}

	private void CrearMenu(final Marco mc) {
		final Dialog dialogo = new Dialog(this,
				R.style.Theme_Dialog_Translucent);
		dialogo.requestWindowFeature(Window.FEATURE_NO_TITLE);
		dialogo.setContentView(R.layout.dialog);

		TextView titulo = (TextView) dialogo.findViewById(R.id.titulo);
		titulo.setText(mc.getRUC() + " - " + mc.getRAZON_SOCIAL());

		ListView lvOpciones = (ListView) dialogo.findViewById(R.id.lvOpciones);
		List<String> opciones = new ArrayList<String>();
		opciones.add("Ingresar Datos");
		opciones.add("Exportar");
		lvOpciones.setAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, opciones));

		lvOpciones.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> a, View v, int pos, long id) {
				switch (pos) {
				case 0:
					Intent ir_menu = new Intent(getApplicationContext(),
							Menu_Activity.class);
					Bundle datos = new Bundle();
					datos.putString("ruc_id", mc.getRUC());
					ir_menu.putExtras(datos);
					startActivity(ir_menu);
					dialogo.dismiss();
					finish();
					break;
				case 1:

					break;
				default:
					break;
				}
			}
		});

		dialogo.show();
	}

	public List<HashMap<String, String>> convertir(List<Marco> l) {
		List<HashMap<String, String>> lista = new ArrayList<HashMap<String, String>>();
		for (int i = 0; i < l.size(); i++) {
			HashMap<String, String> map = new HashMap<String, String>();
			map.put("ruc", l.get(i).getRUC());
			map.put("ciiu", l.get(i).getCIIU_V4());
			map.put("dep", l.get(i).getDEPT());
			map.put("pro", l.get(i).getPROV());
			map.put("dis", l.get(i).getDIST());
			map.put("fin",
					(l.get(i).getFINALIZADO().equals("0") ? "SIN FINALIZAR"
							: "FINALIZADO"));
			map.put("val",
					l.get(i).getVALIDADO().equals("0") ? "SIN VALIDAR"
							: (l.get(i).getVALIDADO() == "1" ? "CON ERROR SIN JUSTIFICAR"
									: "CON ERROR JUSTIFICADO"));
			lista.add(map);
		}
		return lista;

	}

	private void CargarDatos() {
		lista = con.MarcoObtenerTodo();
		if (lista != null) {
			SimpleAdapter adapter = new SimpleAdapter(this, convertir(lista),
					R.layout.marco_item, new String[] { "ruc", "ciiu", "dep",
							"pro", "dis", "fin", "val" }, new int[] {
							R.id.tvRuc, R.id.tvCiiu, R.id.tvDepartamento,
							R.id.tvProvincia, R.id.tvDistrito,
							R.id.tvFinalizado, R.id.tvValidado });
			lvMarco.setAdapter(adapter);
		}
	}
}
